package com.dldata.devtools30.controller.metadata;

import com.dldata.devtools30.entity.DevtModelMetadataTypeEntity;
import com.dldata.devtools30.service.metadata.DevtModelMetadataTypeService;
import com.dldata.devtools30.utils.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;
import java.util.UUID;

@Controller
@RequestMapping(value = "/DevtModelMetadataType")
public class V_DevtModelMetadataTypeController {
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    DevtModelMetadataTypeService metadataTypeService;


    @RequestMapping("toList")
    public String toList(){

        return "thymeleaf/devtools30/metadata/v_MetadataType";
    }
    @RequestMapping("edit")
    public String toEdit(String id, Model model){
          id= StringUtil.isEmptyOrLength0(id)? UUID.randomUUID().toString():id;
          List<DevtModelMetadataTypeEntity> metadataTypeEntityList=  metadataTypeService.findById(id);
            DevtModelMetadataTypeEntity entity=new DevtModelMetadataTypeEntity();
          if(metadataTypeEntityList.size()>0){
              entity=metadataTypeEntityList.get(0);
          }else{
              List<DevtModelMetadataTypeEntity> allFormField = metadataTypeService.getAll();
              int xh = allFormField.size() + 1;
              for (int i = 0; i < allFormField.size(); i++) {
                  DevtModelMetadataTypeEntity fieldEntity = allFormField.get(i);
                  xh=fieldEntity.getXh()>=xh?(fieldEntity.getXh()+1):xh;
              }
              entity.setXh(xh);
          }
        model.addAttribute("data", entity);

        return "thymeleaf/devtools30/metadata/v_MetadataTypeEdit";
    }
}
